package design.patterns.proxymode.staticProxy.service;

import design.patterns.proxymode.staticProxy.api.IDrive;

/**
 * 聚合代理：
 *      一个类中调用另一个对象
 * @author ： cww
 * @date : 2018/7/5
 */
public class CarTogether implements IDrive {

    /**
     * 通过自身的构造函数将需要聚合的对象引入
     * @param carStatic
     */
    public CarTogether(CarStatic carStatic){
        super();
        this.carStatic = carStatic;
    }

    private CarStatic carStatic;

    @Override
    public void drive() {
        //2在代理方法上下再添加业务逻辑
        long start = System.currentTimeMillis();
        System.out.println("汽车启动");
        //1使用构造传入的car的drive方法
        carStatic.drive();
        System.out.println("汽车停止");
        long end = System.currentTimeMillis();
        System.out.println("汽车行驶时间："+(end-start));
    }
}
